/**
 * @file sem.h
 * @author lcz (you@domain.com)
 * @brief 
 * @version 0.1
 * @date 2022-10-23
 * 
 * @copyright Copyright (c) 2022
 * 
 */

#ifndef SEM_H
#define SEM_H

#include "tools/list.h"

/**
 * 进程同步用的计数信号量
 */
typedef struct _sem_t{
    int count; // 信号量计数
    list_t wait_list; // 等待的进程列表
}sem_t;

// declare the funcion
void sem_init(sem_t * sem,int init_count);

void sem_wait(sem_t *sem);

void sem_notify(sem_t *sem);

int sem_count(sem_t * sem);
#endif




